package com.mazaiting.manager.utils;

import com.alibaba.excel.EasyExcel;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

/**
 * 表格工具
 *
 * @author mazaiting
 * @create_time 2022/10/10 22:03
 */
public class ExcelUtil {
    /**
     * 导出数据
     * @param os 输出流
     * @param sheetName sheet 名
     * @param list 列表数据
     * @param clazz 类字节码
     * @param <T> 泛型
     */
    public static <T> void export(OutputStream os, String sheetName, List<T> list, Class<T> clazz) {
        EasyExcel.write(os, clazz).sheet(sheetName).doWrite(list);
    }

    /**
     * 导出表格数据
     * @param os 输出流
     * @param is 输入李
     */
    public static void export(OutputStream os, InputStream is) {
        EasyExcel.write(os).withTemplate(is).build().finish();
    }

    /**
     * 同步读取
     *
     * @param is    输入流
     * @param clazz 字节码
     * @param <T>   泛型
     * @return 数据列表
     */
    public static <T> List<T> readSync(InputStream is, Class<T> clazz) {
        return EasyExcel.read(is).head(clazz).sheet().doReadSync();
    }
}
